#ifndef __VERTEX__LIGHT__RENDER__H__
#define __VERTEX__LIGHT__RENDER__H__
#include "IRender.h"
#include <string>
class VertexLightRender : public IRender
{
public:
	VertexLightRender(const std::string& name);
	virtual ~VertexLightRender();
	virtual void idle() override;
	virtual void draw() override;

protected:
	void draw_vertex_lighting();
	void draw_fragment_lighting();
	void draw_double_vertex_lights();
	void draw_attenuation();
	void draw_spotlight();

private:
	PROGRAM_HANDLE mHandle;
	float mModelMatrixPlastic[16];
	float mModelBrass[16];
	float mModelFloor[16];
	float mViewMatrix[16];
	float mPlasticMVP[16];
	float mBrassMVP[16];
	float mModelFloorMVP[16];
	float mMaterialPlastic[16];
	float mMaterialBrass[16];
	float mMaterialEmelrad[16];

	PROGRAM_HANDLE mHandleVertex;
	PROGRAM_HANDLE mHandleFragFragment;
	PROGRAM_HANDLE mHandleDoubleLightVertex;
	PROGRAM_HANDLE mHandleAttenuationVertex;
	PROGRAM_HANDLE mHandleAttenuationFragment;
	PROGRAM_HANDLE mHandleSpotLightVertex;
	PROGRAM_HANDLE mHandleSpotLightFragment;
};
#endif//__VERTEX__LIGHT__RENDER__H__